Computerized spreadsheets, such as provided by Microsoft Corporation""s Excel software product or Lotus Development Corporation""s Lotus 1-2-3, have gained widespread use. Individuals and businesses routinely use computerized spreadsheets for a variety of purposes, such as accounting, finance and investments.
Generally, a spreadsheet is made up of rows and columns of individual cells. In Microsoft""s Excel, for example, each row is identified by a number and each column is identified by a letter. Thus, xe2x80x9cD5xe2x80x9d is identified as the cell in column D and row 5.
A user may enter a number or text into an individual cell. In addition, computerized spreadsheets allow users to define mathematical functions or formulas within individual cells. Formulas can refer to other cells. For example, as provided in the Help section of Microsoft Excel, a cell may contain the following formula:
xe2x80x9c=(B4+25)/SUM(D5:F5)xe2x80x9d
This formula adds the value in cell B4 with 25, then divides the result by the sum of cells D5, E5 and F5. A formula, in Microsoft Excel, begins with an equal sign, followed by what the formula calculates.
For people working in finance, investment, accounting, engineering or the like, computerized spreadsheets are essential tools. Employees of the assignee of the present inventionxe2x80x94JP Morgan and Co. Inc.xe2x80x94for example, often use computerized spreadsheets to develop and create financial products which are marketed to potential and existing clients. There are disadvantages and shortcomings that are encountered by such users. These include: the models may not be transferable from one computer to another unless the receiving computer has the same spreadsheet software product, i.e., a spreadsheet model developed using one computerized spreadsheet program may not operate on another spreadsheet program; models cannot be provided to a client or a potential client without exposing the proprietary mathematical logic of the models; computerized spreadsheets may suffer from slow executions; computerized spreadsheets have limited security and version control; computerized spreadsheets may not easily be interfaced with other systems or programs; and the user is limited to the graphical user interface provided by the computerized spreadsheet program when presenting the spreadsheet model to a client/potential client.
What is desired, therefore, is a method and system that overcomes the disadvantages and shortcomings described above. More specifically, what is desired is a method and system for generating a structured language model, such as in C or Java code, from a spreadsheet model that overcomes the disadvantages and shortcomings described above.
In one embodiment of the present invention, there is provided a method for easily allowing a user of little to no programming language knowledge to convert a computerized spreadsheet model to a structured programming language model, which method includes:
receiving, from the user via a computer input device, outputs and inputs of the computerized spreadsheet model desired to be processed for conversion;
checking the user entries for errors;
if an error is found, then requesting corrected user entry;
if no error is found, then identifying all relevant spreadsheet model cells based on the user entries;
processing formulas used in the spreadsheet model for parsing;
converting the formulas into final form and determining calculation priority order; and
generating the structured programming language model.
The method of the present invention is carried out by a system including a computer having a user interface, a microprocessor and a storage unit, an input device electronically coupled to the computer, and a software program stored in the storage unit, the software program being programmed to operate the microprocessor for carrying out the steps of the invention.